home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / feynman / vertex.tex < prev   
Text File  |  1992-07-02  |  18KB  |  400 lines

  1. %                          VERTEX(25)
  2. % CALLED BY FEYNMAN(34).TEX.
  3. % Vertex functions for FEYNMAN drawn via \drawvertex.
  4. %
  5. \global\advance\vertexcount by 1 % Needed and defined in FEYNMAN19&20.
  6. \newsavebox{\vertexbox}   
  7. \global\newcount\LDIRcount      % Counts the number of vertices drawn.
  8. \global\newcount\VERTEXNUMBER   % 3 or 4; The number of particles in the vertex.
  9. \global\newdimen\VERTEXLINKONE  % And now some switches.
  10. \global\newdimen\VERTEXLINKTWO
  11. \global\newdimen\VERTEXLINKTHREE
  12. \global\newdimen\VERTEXLINKFOUR %\clearvertex  %sets them to zero
  13. \global\newdimen\VERTEXCAPONE   % And now some GLUONCAP switches.
  14. \global\newdimen\VERTEXCAPTWO
  15. \global\newdimen\VERTEXCAPTHREE
  16. \global\newdimen\VERTEXCAPFOUR  %\clearvertex  %sets them to zero
  17. \global\newdimen\STEMVERTEXONE
  18. \global\newdimen\STEMVERTEXTWO
  19. \global\newdimen\STEMVERTEXTHREE
  20. \global\newdimen\STEMVERTEXFOUR %\clearvertex  %sets them to zero
  21. \global\newcount\stemlengthcopy
  22. \global\newcount\vertexonex    \global\newcount\vertexoney
  23. \global\newcount\vertextwox    \global\newcount\vertextwoy
  24. \global\newcount\vertexthreex  \global\newcount\vertexthreey
  25. \global\newcount\vertexfourx   \global\newcount\vertexfoury
  26. \global\newcount\vertexmidx    \global\newcount\vertexmidy
  27. \global\newcount\VERTEXLINE  
  28. \global\newcount\FLIPVERTEX    \global\FLIPVERTEX=0
  29. \gdef\flipvertex{\global\FLIPVERTEX=1}  %For drawing vertices with flipped lines
  30. \newcount\vertadj              \newcount\negvertadj
  31. %
  32. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  33. %
  34. %                         SAMPLE USAGE:
  35. %
  36. % Syntax:  \drawvertex<\particletype[\DIRECTION #particles in vertex (3 or 4)]
  37. %                      (x,y)[\number of loops or half-wiggles]>
  38. % eg:  \drawvertex\gluon[\NE 3}(0,10000)[3]
  39. %  Where the particle type is either \gluon or \photon
  40. %  Direction is \N, \NE, \E...\NW as with drawing lines.
  41. %    This is the direction of the initial vertex line which you give
  42. %    the co-ords of.  For 3-prong vertices the other 2 lines are 90-degrees
  43. %    to each other and `opposite' the initial line forming a `Y'.
  44. %    For 4-prong vertices an `X' or `+' is formed.
  45. %    The initial line begins at co-ords (vertexonex,\vertexoney) and
  46. %    are numbered in a clockwise sense so that the next line ends are
  47. %    (\vertextwox,\vertextwoy) etc.  The point of convergence is at
  48. %    (\vertexmidx,\vertexmidy).
  49. %  The number of particles will be either 3 (eg: WWZ vertex) or 4.
  50. %  Co-ords of directed line as above.  
  51. %    These then become (\vertexonex,\vertexoney).
  52. %  The number of loops each line of a gluon vertex has or the number of half-
  53. %    wiggles each line of a general gauge vertex is the final parameter.
  54. %
  55. %  To flip the initial (\vertexone) line configuration for a 3-vertex
  56. %    or ALL of the lines in a 4-vertex  say \flipvertex\drawvertex...
  57. %
  58. %
  59. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  60. %                                                                           %
  61. %                         CALLING ROUTINES                                  %
  62. %                                                                           %
  63. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  64. %
  65. \gdef\drawvertex#1[#2#3](#4,#5)[#6]{
  66. \global\advance\vertexcount by 1 % Counts number of vertices draw.
  67. \global\LINETYPE=#1           % either \gluon or \photon
  68. \global\LINEDIRECTION=#2
  69. \global\VERTEXNUMBER=#3  % either 3 or 4
  70. \global\vertexonex=#4
  71. \global\vertexoney=#5
  72. \global\unitboxnumber=#6
  73. \global\stemlengthcopy=\stemlength   % Record use-defined value.
  74. %
  75. % SELECT VERTEX:
  76. %
  77. \ifnum\LINETYPE<3 \LINEERROR \fi
  78. \ifnum\LINETYPE=3   %  *** PHOTONS ***
  79. % TEST WHETHER GLUONS HAVE BEEN PREVIOUSLY DRAWN:
  80. \ifnum\gluoncount=0 \def\gluonlink{\relax} \def\gluoncap{\relax} \fi
  81.   \ifnum\VERTEXNUMBER<3 \UNIMPERROR \fi
  82.   \ifnum\VERTEXNUMBER=3 \THREEPHOTON\fi % 3-PHOTON VERTEX
  83.   \ifnum\VERTEXNUMBER=4 \FOURPHOTON \fi % 4-PHOTON VERTEX
  84.   \ifnum\VERTEXNUMBER>4 \UNIMPERROR \fi
  85. \fi
  86. \ifnum\LINETYPE=4   %  *** GLUONS ***
  87.   \ifnum\VERTEXNUMBER<3 \UNIMPERROR \fi
  88.   \ifnum\VERTEXNUMBER=3 \THREEGLUON \fi % 3-GLUON VERTEX
  89.   \ifnum\VERTEXNUMBER=4 \FOURGLUON  \fi % 4-GLUON VERTEX
  90.   \ifnum\VERTEXNUMBER>4 \UNIMPERROR \fi
  91. \fi
  92. \ifnum\LINETYPE>4 \LINEERROR \fi
  93. \clearvertex   %  Resets VERTEXLINKs, VERTEXCAPS etc.
  94. }  % END \drawvertex
  95. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  96. %                                                                            %
  97. %                            PHOTON VERTICES                                 %
  98. %                                                                            %
  99. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  100. %
  101. \gdef\advtwomodeight#1{
  102. \global\advance\LDIRcount by2\moduloeight\LDIRcount \diagFOURVERT#1[\LDIRcount]}
  103. %
  104. %                        %%%%%%%%%%%%%%%%%%%%%%%
  105. %                        % Three-Photon Vertex %
  106. %                        %%%%%%%%%%%%%%%%%%%%%%%
  107. \gdef\THREEPHOTON{
  108. \ifcase\LDIR  % N vertex
  109. \setvertexA[\S\REG]
  110. \setvertexB[\NW\CURLY](0,0)[2]  \setvertexB[\NE\FLIPPEDCURLY](0,0)[3]
  111. \or  % NE vertex
  112. \setvertexA[\SW\CURLY]
  113. \setvertexB[\N\REG](70,-100)[2] \setvertexB[\E\FLIPPED](0,0)[3]
  114. \or  % E vertex
  115. \setvertexA[\W0]
  116. \setvertexB[\NE\CURLY](20,0)[2] \setvertexB[\SE\FLIPPEDCURLY](20,0)[3]
  117. \or  % SE VERTEX
  118. \setvertexA[\NW\CURLY]
  119. \setvertexB[\E\REG](0,0)[2] \setvertexB[\S1](20,100)[3]
  120. \or  % S VERTEX
  121. \setvertexA[\N\REG]
  122. \setvertexB[\SE\CURLY](0,0)[2]  \setvertexB[\SW\FLIPPEDCURLY](0,0)[3]
  123. \or  % SW vertex
  124. \setvertexA[\NE\CURLY]
  125. \setvertexB[\S\REG](-20,100)[2] 
  126. \setvertexB[\W\FLIPPED](0,0)[3]
  127. \or  % W vertex
  128. \setvertexA[\E\REG]
  129. \setvertexB[\SW\CURLY](0,0)[2]  \setvertexB[\NW\FLIPPEDCURLY](0,0)[3]
  130. \or  % NW vertex
  131. \setvertexA[\SE\CURLY]
  132. \setvertexB[\W\REG](0,0)[2]  
  133. \setvertexB[\N\FLIPPED](-40,-100)[3] 
  134. \else \DIRECTERROR
  135. \fi
  136. } %end \THREEPHOTON
  137. %
  138. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  139. %
  140. %                        %%%%%%%%%%%%%%%%%%%%%%
  141. %                        % Four-Photon Vertex %
  142. %                        %%%%%%%%%%%%%%%%%%%%%%
  143. \gdef\FOURPHOTON{
  144. \ifnum\LDIR>-1
  145. \global\LDIRcount=\LDIR  \global\advance\LDIRcount by 4 \moduloeight\LDIRcount
  146. \setvertexA[\LDIRcount\REG] \advtwomodeight2 \advtwomodeight3 \advtwomodeight4
  147. \else \UNIMPERROR \fi
  148. \global\FLIPVERTEX=0
  149. }
  150. %
  151. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  152. %                                                                            %
  153. %                            GLUON VERTICES                                  %
  154. %                                                                            %
  155. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  156. %
  157. %                        %%%%%%%%%%%%%%%%%%%%%%
  158. %                        % Three-Gluon Vertex %
  159. %                        %%%%%%%%%%%%%%%%%%%%%%
  160. \gdef\THREEGLUON{
  161. \vertadj=0   \adjvert  % No special adjustments required for this case.
  162. \ifcase\LDIR  % N vertex
  163. \setvertexA[\S\CENTRAL]
  164. \setvertexB[\NW\REG](0,0)[2]  \setvertexB[\NE\FLIPPED](0,0)[3]
  165. \or  % NE vertex
  166. \setvertexA[\SW\REG]
  167. \setvertexB[\N\CURLY](-170,442)[2] \setvertexB[\E 3](420,-183)[3]
  168. \setvertexC(442,442)[bl]
  169. \or  % E vertex
  170. \setvertexA[\W6]
  171. \setvertexB[\NE\REG](0,0)[2] \setvertexB[\SE\FLIPPED](0,0)[3]
  172. \or  % SE VERTEX
  173. \setvertexA[\NW\REG]
  174. \setvertexB[\E\CURLY](420,183)[2]  \setvertexB[\S3](-183,-442)[3]
  175. \setvertexC(442,-442)[tl]
  176. \or  % S VERTEX
  177. \setvertexA[\N\CENTRAL]
  178. \setvertexB[\SE\REG](0,0)[2]  \setvertexB[\SW\FLIPPED](0,0)[3]
  179. \or  % SW vertex
  180. \setvertexA[\NE\REG]
  181. \setvertexB[\S\CURLY](170,-442)[2]
  182. \setvertexB[\W\FLIPPEDCURLY](-420,183)[3]
  183. \setvertexC(-442,-442)[tr]
  184. \or  % W vertex
  185. \setvertexA[\E\CENTRAL]
  186. \setvertexB[\SW\REG](0,0)[2]  \setvertexB[\NW\FLIPPED](0,0)[3]
  187. \or  % NW vertex
  188. \setvertexA[\SE\REG]
  189. \setvertexB[\W\CURLY](-420,-183)[2]
  190. \setvertexB[\N\FLIPPEDCURLY](170,442)[3]
  191. \setvertexC(-442,442)[br]
  192. \else \DIRECTERROR
  193. \fi
  194. } %end \THREEGLUON
  195. %
  196. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  197. %
  198. %                         %%%%%%%%%%%%%%%%%%%%%
  199. %                         % Four-Gluon Vertex %
  200. %                         %%%%%%%%%%%%%%%%%%%%%
  201. %
  202. %
  203. \gdef\FOURGLUON{
  204. \ifodd\LDIR\vertadj=0 \else  \vertadj=412 \fi    \adjvert
  205. \ifcase\LDIR  % N vertex
  206. \setvertexA[\S\CURLY]         \MIDADJUST(\negvertadj,\vertadj)
  207. \WFOURVERT2    \NFOURVERT3    \EFOURVERT4
  208. \or \FOURPHOTON  % NE vertex
  209. \or  % E vertex
  210. \setvertexA[\W\CURLY]         \MIDADJUST(\vertadj,\vertadj)
  211. \NFOURVERT2  \EFOURVERT3  \SFOURVERT4
  212. \or \FOURPHOTON    % SE VERTEX
  213. \or  % S VERTEX
  214. \setvertexA[\N\CURLY]         \MIDADJUST(\vertadj,\negvertadj)
  215. \EFOURVERT2   \SFOURVERT3   \WFOURVERT4
  216. \or \FOURPHOTON    % SW vertex
  217. \or  % W vertex
  218. \setvertexA[\E\CURLY]         \MIDADJUST(\negvertadj,\negvertadj)
  219. \SFOURVERT2  \WFOURVERT3  \NFOURVERT4
  220. \or \FOURPHOTON    % NW vertex
  221. \else \DIRECTERROR
  222. \fi
  223. \global\FLIPVERTEX=0   % reset \FLIPVERTEX to unflipped case.
  224. } % End of \FOURGLUON
  225. %
  226. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  227. %                %                                    %                    %
  228. %                %    FOUR GLUON UTILITY ROUTINES:    %                    %
  229. %                %                                    %                    %
  230. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  231. %
  232. % \MIDADJUST Adjusts the position of the vertex midpoint and draws the
  233. %            central four-gluon pattern.
  234. \gdef\MIDADJUST(#1,#2){  
  235. \ifnum\FLIPVERTEX=0
  236. \global\advance\vertexmidx by #1   \global\advance\vertexmidy by #2
  237. \setvertexC(0,\vertadj)[bl]        \setvertexC(0,\negvertadj)[tr]
  238. \setvertexC(\vertadj,0)[tl]        \setvertexC(\negvertadj,0)[br]
  239. \else  % \FLIPPED case
  240. \global\particleadjustx=#1  \global\particleadjusty=#2  
  241. \ifnum\LDIR=0 \global\multiply\particleadjustx by -1 \fi
  242. \ifnum\LDIR=2 \global\multiply\particleadjusty by -1 \fi
  243. \ifnum\LDIR=4 \global\multiply\particleadjustx by -1 \fi
  244. \ifnum\LDIR=6 \global\multiply\particleadjusty by -1 \fi
  245. \global\advance\vertexmidx by \particleadjustx  
  246. \global\advance\vertexmidy by \particleadjusty
  247. \setvertexC(0,\negvertadj)[tl]        \setvertexC(0,\vertadj)[br]
  248. \setvertexC(\negvertadj,0)[tr]        \setvertexC(\vertadj,0)[bl]
  249. \fi
  250. }
  251. %
  252. \gdef\NFOURVERT#1{
  253.   \ifnum\FLIPVERTEX=0 \setvertexB[\N\CURLY](\negvertadj,\vertadj)[#1]
  254.   \else \setvertexB[\N\FLIPPEDCURLY](\vertadj,\vertadj)[#1] \fi}
  255. \gdef\SFOURVERT#1{
  256.   \ifnum\FLIPVERTEX=0 \setvertexB[\S\CURLY](\vertadj,\negvertadj)[#1]
  257.   \else \setvertexB[\S\FLIPPEDCURLY](\negvertadj,\negvertadj)[#1] \fi}
  258. \gdef\EFOURVERT#1{
  259.   \ifnum\FLIPVERTEX=0 \setvertexB[\E\CURLY](\vertadj,\vertadj)[#1]
  260.   \else \setvertexB[\E\FLIPPEDCURLY](\vertadj,\negvertadj)[#1] \fi}
  261. \gdef\WFOURVERT#1{
  262.   \ifnum\FLIPVERTEX=0 \setvertexB[\W\CURLY](\negvertadj,\negvertadj)[#1] 
  263.   \else \setvertexB[\W\FLIPPEDCURLY](\negvertadj,\vertadj)[#1] \fi}
  264. \gdef\diagFOURVERT#1[#2]{\setvertexB[#2\FLIPVERTEX](0,0)[#1]} %for\NE,\SE,\SW\NW
  265. %
  266. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  267. %                                                                            %
  268. %          Utility Routines Used in Setting Up General Vertices              %
  269. %                                                                            %
  270. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  271. %
  272. %
  273. \gdef\setvertexA[#1#2]{
  274. \global\savebox\vertexbox(0,0){
  275. \begin{picture}(0,0)
  276. %eg: \drawline\LINETYPE[\S\CENTRAL](0,0)[\unitboxnumber]
  277. \global\adjx=#2
  278. \ifnum\FLIPVERTEX=1 \global\advance\adjx by 1  
  279.       \ifnum\VERTEXNUMBER=3 \global\FLIPVERTEX=0 \fi  
  280.   \fi  %  Checks for flipped vertex and then Resets \FLIPVERTEX in 3-glue case.
  281. \ifdim\STEMVERTEXONE=1pt\backstemmed \fi
  282. \drawline\LINETYPE[#1\adjx](0,0)[\unitboxnumber]
  283. \global\stemlength=\stemlengthcopy  % Re-set to use-defined value.
  284. \ifdim\VERTEXLINKONE=1pt\gluonlink \fi % For linking external gluons to vertex
  285. \ifdim\VERTEXCAPONE=1pt\gluoncap \fi % For capping external gluons to vertex
  286. \global\vertexmidx=\particlebackx  \global\vertexmidy=\particlebacky  
  287. \end{picture}
  288. }%end of \savebox
  289. \global\multiply\vertexmidx by -1  \global\multiply\vertexmidy by -1  
  290. \global\advance\vertexmidx by \vertexonex  
  291. \global\advance\vertexmidy by \vertexoney
  292. %eg: \drawline\LINETYPE[\S\CENTRAL](\vertexmidx,\vertexmidy)[\unitboxnumber]
  293. \ifdim\STEMVERTEXONE=1pt\backstemmed \fi
  294. \drawline\LINETYPE[#1\adjx](\vertexmidx,\vertexmidy)[\unitboxnumber]
  295. \global\stemlength=\stemlengthcopy  % Re-set to use-defined value.
  296. \ifdim\VERTEXLINKONE=1pt\gluonlink \fi % For linking external gluons to vertex
  297. \ifdim\VERTEXCAPONE=1pt\gluoncap \fi % For capping external gluons to vertex
  298. } %End of \setvertexA
  299. %
  300. %
  301. \gdef\setvertexB[#1#2](#3,#4)[#5]{
  302. \global\adjx=\vertexmidx   \global\adjy=\vertexmidy
  303. \global\advance\adjx by #3   \global\advance\adjy by #4
  304. \VERTEXLINE=#5
  305. \ifcase\VERTEXLINE\UNIMPERROR  %=0
  306. \or \UNIMPERROR  %line 1                      %%%%%%%%%%%%%%%%%%%%%
  307. \or \ifdim\STEMVERTEXTWO=1pt\backstemmed \fi  %  For stemming     %
  308. \or \ifdim\STEMVERTEXTHREE=1pt\backstemmed\fi %  external gluons  %
  309. \or \ifdim\STEMVERTEXFOUR=1pt\backstemmed\fi  %  to vertex        %
  310. \else \UNIMPERROR                             %%%%%%%%%%%%%%%%%%%%%
  311. \fi
  312. \drawline\LINETYPE[#1#2](\adjx,\adjy)[\unitboxnumber]
  313. \global\stemlength=\stemlengthcopy  % Re-set to use-defined value.
  314. \ifcase\VERTEXLINE\UNIMPERROR  %=0
  315. \or \UNIMPERROR  %line 1
  316. \or \ifdim\VERTEXLINKTWO=1pt\gluonlink \fi % For linking external gluons to vert
  317.     \ifdim\VERTEXCAPTWO=1pt\gluoncap \fi % For capping external gluons to vertex
  318.     \global\vertextwox=\particlebackx  \global\vertextwoy=\particlebacky  
  319. \or \ifdim\VERTEXLINKTHREE=1pt\gluonlink\fi %For linking external gluons to vert
  320.     \ifdim\VERTEXCAPTHREE=1pt\gluoncap\fi %For capping external gluons to vertex
  321.     \global\vertexthreex=\particlebackx  \global\vertexthreey=\particlebacky  
  322. \or \ifdim\VERTEXLINKFOUR=1pt\gluonlink\fi % For linking external gluons to vert
  323.     \ifdim\VERTEXCAPFOUR=1pt\gluoncap\fi % For capping external gluons to vertex
  324.     \global\vertexfourx=\particlebackx  \global\vertexfoury=\particlebacky  
  325. \else \UNIMPERROR  
  326. \fi
  327. }
  328. \gdef\setvertexC(#1,#2)[#3#4]{
  329. \global\adjx=\vertexmidx   \global\adjy=\vertexmidy
  330. \global\advance\adjx by #1   \global\advance\adjy by #2
  331. \absstemlength=1250  % Default for 3-gluon vertex; \absstemlength unused var.
  332. \ifnum \VERTEXNUMBER=4 \absstemlength=\vertadj\double\absstemlength \fi
  333. \ifnum\phantomswitch=0 
  334.    \put(\adjx,\adjy) {\oval(\absstemlength,\absstemlength)[#3#4]}\fi
  335. }
  336. \gdef\adjvert{\negvertadj=\vertadj  \multiply\negvertadj by -1}
  337. %
  338. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  339. %                                                                           %
  340. %                        LINKING GLUONS TO VERTICES                         %
  341. %                                                                           %
  342. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  343. %
  344. \gdef\vertexlink#1{
  345. \global\VERTEXLINE=#1
  346. \ifcase\VERTEXLINE\UNIMPERROR
  347. \or \global\VERTEXLINKONE=1pt    \or \global\VERTEXLINKTWO=1pt
  348. \or \global\VERTEXLINKTHREE=1pt  \or \global\VERTEXLINKFOUR=1pt  
  349. \else\UNIMPERROR\fi}
  350. \gdef\vertexlinks{
  351. \global\VERTEXLINKONE=1pt     \global\VERTEXLINKTWO=1pt
  352. \global\VERTEXLINKTHREE=1pt  \global\VERTEXLINKFOUR=1pt  }
  353. % counters cleared by \clearvertex now defined in STEM section below.
  354. %
  355. %
  356. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  357. %                                                                           %
  358. %                        CAPPING GLUONS ON VERTICES                         %
  359. %                                                                           %
  360. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  361. %
  362. \gdef\vertexcap#1{
  363. \global\VERTEXLINE=#1
  364. \ifcase\VERTEXLINE\UNIMPERROR
  365. \or \global\VERTEXCAPONE=1pt    \or \global\VERTEXCAPTWO=1pt
  366. \or \global\VERTEXCAPTHREE=1pt  \or \global\VERTEXCAPFOUR=1pt  
  367. \else\UNIMPERROR\fi}
  368. \gdef\vertexcaps{
  369. \global\VERTEXCAPONE=1pt     \global\VERTEXCAPTWO=1pt
  370. \global\VERTEXCAPTHREE=1pt  \global\VERTEXCAPFOUR=1pt  }
  371. % counters cleared by \clearvertex now defined in STEM section below.
  372. %
  373. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  374. %                                                                           %
  375. %                         LINKING STEMS TO VERTICES                         %
  376. %                                                                           %
  377. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  378. %
  379. %
  380. \gdef\stemvertex#1{
  381. \global\VERTEXLINE=#1
  382. \ifcase\VERTEXLINE\UNIMPERROR
  383. \or \global\STEMVERTEXONE=1pt    \or \global\STEMVERTEXTWO=1pt  
  384. \or \global\STEMVERTEXTHREE=1pt  \or \global\STEMVERTEXFOUR=1pt  
  385. \else\UNIMPERROR\fi}
  386. \gdef\stemvertices{
  387. \global\STEMVERTEXONE=1pt     \global\STEMVERTEXTWO=1pt  
  388. \global\STEMVERTEXTHREE=1pt  \global\STEMVERTEXFOUR=1pt  }
  389. \gdef\clearvertex{
  390. \global\STEMVERTEXONE=0pt    \global\STEMVERTEXTWO=0pt  
  391. \global\STEMVERTEXTHREE=0pt  \global\STEMVERTEXFOUR=0pt 
  392. \global\VERTEXLINKONE=0pt    \global\VERTEXLINKTWO=0pt  
  393. \global\VERTEXLINKTHREE=0pt  \global\VERTEXLINKFOUR=0pt  
  394. \global\VERTEXCAPONE=0pt    \global\VERTEXCAPTWO=0pt  
  395. \global\VERTEXCAPTHREE=0pt  \global\VERTEXCAPFOUR=0pt  
  396. \global\stemlength=275}  % Re-set default.
  397. \global\stemlengthcopy=\stemlength
  398. \clearvertex  %set them to zero initially.
  399. \global\stemlength=\stemlengthcopy
  400.